SCI Server 를 CentOS에 설치
1. 개요
- 본 문서는 SCI Server 를 CentOS 에서 설치하는 과정 표준 가이드입니다.
- 문서보안 솔루션을 이용하기 위해서는 SCI Server 와 문서보안 DB가 구성되어야 합니다.
2. SCI_Server 설치를 위한 필요환경 준비
필요 환경
- OS : CentOS
- DB : MariaDB
- SCI 서버 설치 파일
- DB 구성 스크립트
- 방화벽 포트 오픈
3. 사전 작업
가. OS 사용자 계정생성
- OS의 계정명은 임의로 생성하여도 무관
- root 계정으로 접속하여 진행
useradd softcamp
passwd softcamp
New password : [임의PW입력]
Retype new password : [임의PW입력]
나. OS사용자 계정 bash 쉘 등록
vi /etc/passwd
softcamp:x:1001:1001::/home/softcamp:/bin > softcamp:x:1001:1001::/home/softcamp:/bin/bash # /bash 추가
다. vi 편집기 한글 설정
vi /etc/vim/vimrc
set encoding=utf-8
set fileencodings=utf-8,cp949 #최하단에 해당 설정 입력후 저장
라. 방화벽 포트 오픈 및 방화벽 재시작
- SCI 서버와 디 비작업을 위하여 포트 개방
- AKS : 62000, LMS : 62002, PMS : 62004, SCISM : 8080, DB : 3306
firewall-cmd --permanent --zone=public --add-port=62000/tcp
firewall-cmd --permanent --zone=public --add-port=62002/tcp
firewall-cmd --permanent --zone=public --add-port=62004/tcp
firewall-cmd --permanent --zone=public --add-port=8080/tcp
firewall-cmd --permanent --zone=public --add-port=3306/tcp
firewall-cmd --reload
마. SCI_Server 설치파일 업로드 및 권한부여
- 설치파일을 FTP 를 이용하여 /home/사용자계정/아래의 경로에 업로드 후 압축해제
tar -xvf /home/사용자계정/설치파일.tar
tar -xvf /home/softcamp/SCI_Server_install.tar
- 업로드한 파일 OS사용자 계정에 사용권한 부여
설치파일 권한 부여
chown -R 사용자:그룹 /home/사용자계정
chown -R softcamp:softcamp /home/softcamp
바. MariaDB 설치 및 설정 변경
yum update
yum install -y mariadb-server
systemctl start mariadb
systemctl enable mariadb
- MariaDB의 환경설정 vi 편집기로 MariaDB 환경설정 파일을 오픈
vi /etc/my.cnf.d/server.cnf
해당 파일이 없거나 기본 설치한 경우 아래 경로를 확인
vi /etc/mysql/mariadb.conf.d/50-server.cnf
- 아래의 설정을 추가 후 저장
파일별 맞는 [항목]의 값들을 넣어주세요
기존에 [항목] 이 있는데 하위에 넣으면 상위의 값만 사용이 됩니다.
각 파일에 맞는 항목을 [mysql], [mysqld]등의 항목에 맞는 값을 넣어주세요.
자동 설치를 통해 설치한 경우 50-server.cnf, 50-client.cnf파일로 사용하시면 됩니다.
- 아래의 설정을 각 항목에 추가, 고객사 환경에 맞는 값으로 기록해야 하는 항목 맨 하단에 있음.
- 기본 경로로 설치
- DB데이터 경로 지정하여 설치
- server.cnf
- client.cnf
[mysql]
# CLI 클라이언트에서 자동 완성 기능 비활성화
no-auto-rehash
[mysqld_safe]
# 동시에 열 수 있는 파일의 최대 개수 설정
open-files-limit = 65535
[mysqld]
#초기값 : bind-address = 127.0.0.1 에서 수정
bind-address = 0.0.0.0
#초기값 : character-set-server = utf8 에서 수정
character-set-server = utf8mb4
#초기값 : collation-server=utf8_general_ci 에서 수정
collation-server=utf8mb4_general_ci
#초기값 : expire_logs_days = 10 에서 수정
expire_logs_days = 3
# 호스트명 확인 과정 생략으로 접속 속도 향상
skip-name-resolve
# 테이블명을 소문자로 저장하고 대소문자 구분 없이 처리
lower_case_table_names = 1
# 새로운 연결이 생성될 때마다 문자셋을 UTF-8로 설정
init_connect = SET NAMES utf8
# 새로운 연결의 문자열 정렬 규칙 설정
init_connect = SET collation_connection = utf8mb4_general_ci
# === 로그 설정 ===
# 경고 메시지 로깅 활성화
log_warnings = 1
# 바이너리 로그 형식을 ROW 형식으로 설정 (상세한 변경 내용 기록)
binlog_format = ROW
# 바이너리 로그를 디스크에 즉시 동기화
sync_binlog = 1
# 바이너리 로그 캐시 크기 설정
binlog_cache_size = 1M
# 복제 환경에서 함수 생성 허용
log_bin_trust_function_creators = 1
# 일반 쿼리 로그 설정
log-output = FILE
general_log = OFF
# 슬로우 쿼리 로그 설정
slow_query_log = ON
# 3초 이상 걸리는 쿼리를 슬로우 쿼리로 기록
long_query_time = 3
# === 연결 및 스레드 설정 ===
# 최대 동시 접속자 수
max_connections = 1000
# 최대 접속 에러 수
max_connect_errors = 100
# 대기 큐 크기
back_log = 100
# 스레드 캐시 크기
thread_cache_size = 1000
# 미사용 연결 타임아웃 (초)
wait_timeout = 3600
interactive-timeout = 3600
# === 쿼리 캐시 설정 ===
# 쿼리 캐시 비활성화 (성능 향상을 위해)
query_cache_size = 0M
query_cache_type = 0
query_cache_limit = 0M
# === 메모리 테이블 설정 ===
# 메모리 테이블의 최대 크기
max_heap_table_size = 32M
# 임시 테이블의 최대 크기
tmp_table_size = 32M
# 패킷의 최대 크기
max_allowed_packet = 1024M
# === 버퍼 설정 ===
# 인덱스 읽기 버퍼 크기
read_rnd_buffer_size = 4M
# 테이블 스캔 버퍼 크기
read_buffer_size = 2M
# 정렬 버퍼 크기
sort_buffer_size = 2M
# 조인 버퍼 크기
join_buffer_size = 2M
# 열린 테이블 캐시 크기
table_open_cache = 10000
# === 트랜잭션 설정 ===
# 트랜잭션 격리 수준 설정
transaction_isolation = READ-COMMITTED
# === 시스템 설정 ===
# DNS 조회 비활성화
skip_name_resolve = ON
# 외부 잠금 비활성화
skip_external_locking = ON
# 호스트 캐시 비활성화
skip-host-cache
# === MyISAM(스토리지 엔진) 설정 ===
# MyISAM 키 버퍼 크기
key_buffer_size = 32M
# 대량 삽입 버퍼 크기
bulk_insert_buffer_size = 64M
# MyISAM 정렬 버퍼 크기
myisam_sort_buffer_size = 128M
# MyISAM 임시 파일 최대 크기
myisam_max_sort_file_size = 10G
# MyISAM 복구 스레드 수
myisam_repair_threads = 1
# === InnoDB 설정 ===
# 기본 스토리지 엔진 설정
default-storage-engine = InnoDB
default-tmp-storage-engine = InnoDB
# 테이블별 파일 사용 (관리의 용이성)
innodb_file_per_table = 1
# InnoDB 로그 파일 크기
innodb_log_file_size = 512M
# InnoDB 로그 버퍼 크기
innodb_log_buffer_size = 32M
# 트랜잭션 커밋 시 로그 동기화 설정
innodb_flush_log_at_trx_commit = 1
# 잠금 대기 타임아웃 (초)
innodb_lock_wait_timeout = 30
# === 시스템 리소스에 따른 설정 ===
# ****** 중 요 ******
###고객사에 맞게 셋팅되어야 하는 설정###
# 물리 메모리의 50%로 설정 (예: 32GB 메모리의 경우 16GB 설정)
innodb_buffer_pool_size = 16G
# CPU 코어 수의 1/2로 설정 (예: 8코어의 경우 4 설정)
innodb_write_io_threads = 4
innodb_read_io_threads = 4
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
RPM으로 기본 설치시 파일들이 기본으로 설정되는 경로
# basedir = /usr
# datadir = /var/lib/mysql
# tmpdir = /tmp
# log_error = /var/log/mariadb/mariadb.log
# log_bin = /var/lib/mysql/mysql-bin
# 참고: log_bin이 활성화된 경우에만 해당 경로에 파일 생성
# general_log_file = /var/lib/mysql/hostname.log
# 참고: general_log가 활성화된 경우에만 해당 경로에 파일 생성
# slow_query_log_file = /var/lib/mysql/hostname-slow.log
# 참고: slow_query_log가 활성화된 경우에만 해당 경로에 파일 생성
# innodb_data_home_dir = /var/lib/mysql
# innodb_data_file_path = ibdata1:12M:autoextend
# innodb_log_group_home_dir = /var/lib/mysql
- server.cnf
- client.cnf
[mysql]
# CLI 클라이언트에서 자동 완성 기능 비활성화
no-auto-rehash
[mysqld_safe]
# 동시에 열 수 있는 파일의 최대 개수 설정
open-files-limit = 65535
[mysqld]
#초기값 : bind-address = 127.0.0.1 에서 수정
bind-address = 0.0.0.0
#초기값 : character-set-server = utf8 에서 수정
character-set-server = utf8mb4
#초기값 : collation-server=utf8_general_ci 에서 수정
collation-server=utf8mb4_general_ci
# 호스트명 확인 과정 생략으로 접속 속도 향상
skip-name-resolve
# 테이블명을 소문자로 저장하고 대소문자 구분 없이 처리
lower_case_table_names = 1
# 새로운 연결이 생성될 때마다 문자셋을 UTF-8로 설정
init_connect = SET NAMES utf8
# 새로운 연결의 문자열 정렬 규칙 설정
init_connect = SET collation_connection = utf8mb4_general_ci
# === 디렉토리 설정 ===
## DB데이터/로그를 /home/softcamp하위에 생성한다는 가정으로 지정한 샘플
## dir관련 설정은 고객사 환경에 맞게 지정 필요
# MySQL 설치 기본 디렉토리
## dir관련 설정
basedir = /usr/local/mysql
# 데이터 파일이 저장되는 디렉토리
## dir관련 설정
datadir = /home/softcamp/DB/data
# 임시 파일이 저장되는 디렉토리
## dir관련 설정
tmpdir = /home/softcamp/DB/tmp
# === 로그 설정 ===
# 에러 로그 파일 위치
## dir관련 설정
log_error = /home/softcamp/DB/log/maria.err
# 경고 메시지 로깅 활성화
log_warnings = 1
# 바이너리 로그 설정 (복제 및 백업용)
## dir관련 설정
log_bin = /softcamp/DB/bin-log/mysql-bin
# 바이너리 로그 형식을 ROW 형식으로 설정 (상세한 변경 내용 기록)
binlog_format = ROW
# 바이너리 로그를 디스크에 즉시 동기화
sync_binlog = 1
# 바이너리 로그 캐시 크기 설정
binlog_cache_size = 1M
# 복제 환경 에서 함수 생성 허용
log_bin_trust_function_creators = 1
# 일반 쿼리 로그 설정
log-output = FILE
general_log = OFF
## dir관련 설정
general_log_file = /home/softcamp/DB/log/general.log
# 슬로우 쿼리 로그 설정
slow_query_log = ON
## dir관련 설정
slow_query_log_file = /home/softcamp/DB/log/slow-query.log
# 3초 이상 걸리는 쿼리를 슬로우 쿼리로 기록
long_query_time = 3
# === 연결 및 스레드 설정 ===
# 최대 동시 접속자 수
max_connections = 1000
# 최대 접속 에러 수
max_connect_errors = 100
# 대기 큐 크기
back_log = 100
# 스레드 캐시 크기
thread_cache_size = 1000
# 미사용 연결 타임아웃 (초)
wait_timeout = 3600
interactive-timeout = 3600
# === 쿼리 캐시 설정 ===
# 쿼리 캐시 비활성화 (성능 향상을 위해)
query_cache_size = 0M
query_cache_type = 0
query_cache_limit = 0M
# === 메모리 테이블 설정 ===
# 메모리 테이블의 최대 크기
max_heap_table_size = 32M
# 임시 테이블의 최대 크기
tmp_table_size = 32M
# 패킷의 최대 크기
max_allowed_packet = 1024M
# === 버퍼 설정 ===
# 인덱스 읽기 버퍼 크기
read_rnd_buffer_size = 4M
# 테이블 스캔 버퍼 크기
read_buffer_size = 2M
# 정렬 버퍼 크기
sort_buffer_size = 2M
# 조인 버퍼 크기
join_buffer_size = 2M
# 열린 테이블 캐시 크기
table_open_cache = 10000
# === 트랜잭션 설정 ===
# 트랜잭션 격리 수준 설정
transaction_isolation = READ-COMMITTED
# === 시스템 설정 ===
# DNS 조회 비활성화
skip_name_resolve = ON
# 외부 잠금 비활성화
skip_external_locking = ON
# 호스트 캐시 비활성화
skip-host-cache
# === MyISAM(스토리지 엔진) 설정 ===
# MyISAM 키 버퍼 크기
key_buffer_size = 32M
# 대량 삽입 버퍼 크기
bulk_insert_buffer_size = 64M
# MyISAM 정렬 버퍼 크기
myisam_sort_buffer_size = 128M
# MyISAM 임시 파일 최대 크기
myisam_max_sort_file_size = 10G
# MyISAM 복구 스레드 수
myisam_repair_threads = 1
# === InnoDB 설정 ===
# 기본 스토리지 엔진 설정
default-storage-engine = InnoDB
default-tmp-storage-engine = InnoDB
# InnoDB 데이터 홈 디렉토리
## dir관련 설정
innodb_data_home_dir = /home/softcamp/DB/maria-data
# 테이블별 파일 사용 (관리의 용이성)
innodb_file_per_table = 1
# InnoDB 데이터 파일 경로 및 크기 설정
## dir관련 설정
innodb_data_file_path = ibdata1:1G;ibdata2:1G;ibdata3:1G:ibdata4:1G:ibdata5:10M:autoextend
# InnoDB 로그 파일 디렉토리
## dir관련 설정
innodb_log_group_home_dir = /home/softcamp/DB/maria-data
# InnoDB 로그 파일 크기
innodb_log_file_size = 512M
# InnoDB 로그 버퍼 크기
innodb_log_buffer_size = 32M
# 트랜잭션 커밋 시 로그 동기화 설정
innodb_flush_log_at_trx_commit = 1
# 잠금 대기 타임아웃 (초)
innodb_lock_wait_timeout = 30
# === 시스템 리소스에 따른 설정 ===
# ====== 중 요 ======
###고객사에 맞게 셋팅되어야 하는 설정 아래 참고 설정###
# 물리 메모리의 50%로 설정 (예: 32GB 메모리의 경우 16GB 설정)
innodb_buffer_pool_size = 16G
# CPU 코어 수의 1/2로 설정 (예: 8코어의 경우 4 설정)
innodb_write_io_threads = 4
innodb_read_io_threads = 4
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
물리 메모리확인 방법(innodb_buffer_pool_size의 값 구하기)
- 계산기에서 명령어로 나온값 /1024 /1024 /2 하였을때 나온 정수에 G붙여서 기입
cat /proc/meminfo | grep MemTotal
CPU Core확인 방법(innodb_write_io_threads, innodb_read_io_threads의 값 구하기)
- 계산기에서 명령어로 나온값 / 2 하였을때 나온 정수를 기입
grep ^processor /proc/cpuinfo | wc -l
- MariaDB 재시작
systemctl restart mariadb
4. SCI NullDB 구성
가. NullDB 구성을위하여 DB생성 스크립트가 있는 경로로 접속
- 경로 이동
cd /home/사용자계정/압축해제한 설치파일/BaseDB_Script/MARIADB
cd /home/softcamp/SCI_Server_install/BaseDB_Script/MARIADB
나. NullDB구성 스크립트 동작
mysql -u root < 1_create_database.sql;
mysql -u root < 2_1_table_DSLOGDB.sql;
mysql -u root < 2_2_table_EXPPOLICYDB.sql;
mysql -u root < 2_3_table_FSDB.sql;
mysql -u root < 2_4_table_MOBILEDB.sql;
mysql -u root < 2_5_table_PIDB.sql;
mysql -u root < 2_6_table_SHIELDEXDB.sql;
mysql -u root < 2_7_table_TFTDB.sql;
mysql -u root < 3_1_procedure_dslogdb.sql;
mysql -u root < 3_2_procedure_exppolicydb.sql;
mysql -u root < 3_3_procedure_fsdb.sql;
mysql -u root < 3_4_procedure_mobiledb.sql;
mysql -u root < 3_5_procedure_pidb.sql;
mysql -u root < 3_6_procedure_shieldexdb.sql;
mysql -u root < 3_7_procedure_tftdb.sql;
mysql -u root < 4_data.sql;
mysql -u root < 5_1_tftdb_table.sql;
mysql -u root < 5_2_tftdb_function.sql;
mysql -u root < 5_3_tftdb_procedure.sql;
mysql -u root < 6_1_custom_policy_insert.sql;
mysql -u root < 6_2_BasicPolicy.sql;
5. SCI_Server 설치
가. SCI_Server 설치
- SCI 서버 설치 과정은 softcamp(2단계에서 생성한 OS계정) 으로 진행
root 세션 종료 후 사용자계정으로 로그인
exit
localhost : 사용자 계정 password : 사용자계정 패스워드 입력
- SCI Server 설치 파일이 존재하는 경로로 이동 후 설치파일 동작
cd /home/사용자계정/압축해제한 설치파일/Linux_x64/VM ./SCI_Server_설치파일 날짜.bin
cd /home/softcamp/SCI_Server_install/Linux_x64/VM
./SCI_Server_설치파일 날짜.bin
안내사항
설치파일 동작후 모든 과정 ENTER 입력시 DEFAULT 값으로 설치 진행 설치경로, 서비스 포트 등 필요시 변경가능
나. SCI_Server 권한부여 및 실행
chmod 775 /home/softcamp/Softcamp/SCI_Server/S99*
cd /home/softcamp/Softcamp/SCI_Server
./S99SCISM start
다. 서비스 동작 여부 확인
ps –ef |grep SCI
8. SCI 서버 및 데이터베이스 확인
가. SCI 웹 콘솔 접속
- 브라우저에서 URL 접속
http://서버IP:8080 (default port)
웹 콘솔 계정 생성 (임의설정)
Manager ID : drmadmin
Manager Password : softcamp1!
나. DBMS 연결
- 좌측 하단의 DBMS 연결 설정 부분의 값 수정
DBMS : MARIADB
URL : SCI Server IP:1433
사용자명 : drmadmin(DB접속 계정ID)
패스워드 : softcamp1!(DB접속 계정PW)
데이터베이스명 : tftdb
- 설정값 수정후 [적용] 클릭
- [연결 테스트] 클릭
- '연결 테스트 성공' 알림창으로 연결여부 확인
- 상단의 [서버 시작] 클릭
7. 문서보안 관리자 콘솔 접속
가. 관리자콘솔 접속
관리자 콘솔 설치 후 실행
- 서버 : 서버IP
- 아이디 : document (변경가능)
- 비밀번호 : security (변경가능)
- 통신포트 : 62004 (PMS 포트)
나. 마스터키 생성
자동생성
-> 확인
관리자 콘솔까지 접속된다면 SCI Server 는 설치 완료